package com.eastfair.config.dto;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.eastfair.core.base.entity.Entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.eastfair.config.enumeration.FormFieldFieldGroupEnum;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 
 * </p>
 *
 * @author zjn
 * @since 2022-03-25
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "FormFieldSaveDTO", description = "")
public class FormFieldSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 展会id
     */
    @ApiModelProperty(value = "展会id")
    private Long exhibitionId;
    /**
     * 使用主体
     */
    @ApiModelProperty(value = "使用主体")
    @Size(max = 32, message = "使用主体长度不能超过32")
    private String subjectType;
    /**
     * 语言环境
     */
    @ApiModelProperty(value = "语言环境")
    @Size(max = 16, message = "语言环境长度不能超过16")
    private String languageType;
    /**
     * 字段名称
     */
    @ApiModelProperty(value = "字段名称")
    @Size(max = 256, message = "字段名称长度不能超过256")
    private String fieldName;
    /**
     * 字段英文名称
     */
    @ApiModelProperty(value = "字段英文名称")
    @Size(max = 256, message = "字段英文名称长度不能超过256")
    private String fieldEnName;
    /**
     * 关键字
     */
    @ApiModelProperty(value = "关键字")
    @Size(max = 256, message = "关键字长度不能超过256")
    private String keyword;
    /**
     * 对象类名
     */
    @ApiModelProperty(value = "对象类名")
    @Size(max = 256, message = "对象类名长度不能超过256")
    private String className;
    /**
     * 字段类型
     */
    @ApiModelProperty(value = "字段类型")
    @Size(max = 128, message = "字段类型长度不能超过128")
    private String fieldType;
    /**
     * 字段类型属性：1：字典；2：api；3：自定义
     */
    @ApiModelProperty(value = "字段类型属性：1：字典；2：api；3：自定义")
    @Size(max = 256, message = "字段类型属性：1：字典；2：api；3：自定义长度不能超过256")
    private String fieldTypeAttribute;
    /**
     * 字段类型属性值
     */
    @ApiModelProperty(value = "字段类型属性值")
    @Size(max = 256, message = "字段类型属性值长度不能超过256")
    private String fieldTypeAttributeValue;
    /**
     * 标签键名
     */
    @ApiModelProperty(value = "标签键名")
    @Size(max = 128, message = "标签键名长度不能超过128")
    private String labelKey;
    /**
     * 值键名
     */
    @ApiModelProperty(value = "值键名")
    @Size(max = 128, message = "值键名长度不能超过128")
    private String labelValueKey;
    /**
     * 子集键名
     */
    @ApiModelProperty(value = "子集键名")
    @Size(max = 64, message = "子集键名长度不能超过64")
    private String childrenKey;
    /**
     * 提示语
     */
    @ApiModelProperty(value = "提示语")
    @Size(max = 256, message = "提示语长度不能超过256")
    private String placeholder;
    /**
     * 英文提示语
     */
    @ApiModelProperty(value = "英文提示语")
    @Size(max = 256, message = "英文提示语长度不能超过256")
    private String enPlaceholder;
    /**
     * 字段描述
     */
    @ApiModelProperty(value = "字段描述")
    @Size(max = 1024, message = "字段描述长度不能超过1024")
    private String fieldDesc;
    /**
     * 字段英文描述
     */
    @ApiModelProperty(value = "字段英文描述")
    @Size(max = 1024, message = "字段英文描述长度不能超过1024")
    private String fieldEnDesc;
    /**
     * 字数限制
     */
    @ApiModelProperty(value = "字数限制")
    private Integer inputLength;
    /**
     * 宽度
     */
    @ApiModelProperty(value = "宽度")
    private Integer inputWidth;
    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sequence;
    /**
     * 表单分组类型 #{PERSONAL:个人;COMPANY:公司;GENNERAL:总部;FILE:文件;TAG:标签;EXHIBITOR_PRODUCT:展品}
     */
    @ApiModelProperty(value = "表单分组类型 #{PERSONAL:个人;COMPANY:公司;GENNERAL:总部;FILE:文件;TAG:标签;EXHIBITOR_PRODUCT:展品}")
    private FormFieldFieldGroupEnum fieldGroup;
    /**
     * 示例图片
     */
    @ApiModelProperty(value = "示例图片")
    @Size(max = 256, message = "示例图片长度不能超过256")
    private String legend;
    /**
     * 示例图片描述
     */
    @ApiModelProperty(value = "示例图片描述")
    @Size(max = 256, message = "示例图片描述长度不能超过256")
    private String legendDesc;
    /**
     * 示例图片英文描述
     */
    @ApiModelProperty(value = "示例图片英文描述")
    @Size(max = 256, message = "示例图片英文描述长度不能超过256")
    private String legendEnDesc;
    /**
     * 是否可编辑：1是；0否
     */
    @ApiModelProperty(value = "是否可编辑：1是；0否")
    private Integer isEdit;
    /**
     * 是否必填：1是；0否
     */
    @ApiModelProperty(value = "是否必填：1是；0否")
    private Integer isRequired;
    /**
     * 是否多选：1是；0否
     */
    @ApiModelProperty(value = "是否多选：1是；0否")
    private Integer isMultiple;
    /**
     * 是否是线下预登记字段：1是；0否
     */
    @ApiModelProperty(value = "是否是线下预登记字段：1是；0否")
    private Integer isOffline;
    /**
     * 是否需要验证：1是；0否
     */
    @ApiModelProperty(value = "是否需要验证：1是；0否")
    private Integer isVerification;
    /**
     * 验证关键字
     */
    @ApiModelProperty(value = "验证关键字")
    @Size(max = 256, message = "验证关键字长度不能超过256")
    private String verificationKeyword;
    /**
     * 是否有提示信息：1是；0否
     */
    @ApiModelProperty(value = "是否有提示信息：1是；0否")
    private Integer isTips;
    /**
     * 中文提示信息
     */
    @ApiModelProperty(value = "中文提示信息")
    @Size(max = 512, message = "中文提示信息长度不能超过512")
    private String tips;
    /**
     * 英文提示信息
     */
    @ApiModelProperty(value = "英文提示信息")
    @Size(max = 512, message = "英文提示信息长度不能超过512")
    private String enTips;
    /**
     * 是否启用：1是；0否
     */
    @ApiModelProperty(value = "是否启用：1是；0否")
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;
    /**
     * 是否用于完善信息：1是；0否
     */
    @ApiModelProperty(value = "是否用于完善信息：1是；0否")
    private Integer isPerfectInfo;
    /**
     * 是否用于详情：1是；0否
     */
    @ApiModelProperty(value = "是否用于详情：1是；0否")
    private Integer isDetails;
    /**
     * 前缀名称
     */
    @ApiModelProperty(value = "前缀名称")
    @Size(max = 256, message = "前缀名称长度不能超过256")
    private String prefixName;
    /**
     * 前缀关键字
     */
    @ApiModelProperty(value = "前缀关键字")
    @Size(max = 256, message = "前缀关键字长度不能超过256")
    private String prefixKeyword;
    /**
     * 前缀属性
     */
    @ApiModelProperty(value = "前缀属性")
    @Size(max = 128, message = "前缀属性长度不能超过128")
    private String prefixAttribute;
    /**
     * 前缀属性值
     */
    @ApiModelProperty(value = "前缀属性值")
    @Size(max = 256, message = "前缀属性值长度不能超过256")
    private String prefixAttributeValue;
    /**
     * 前缀标签键名
     */
    @ApiModelProperty(value = "前缀标签键名")
    @Size(max = 128, message = "前缀标签键名长度不能超过128")
    private String prefixLabelKey;
    /**
     * 前缀值键名
     */
    @ApiModelProperty(value = "前缀值键名")
    @Size(max = 128, message = "前缀值键名长度不能超过128")
    private String prefixLabelValueKey;
    /**
     * 前缀子集键名
     */
    @ApiModelProperty(value = "前缀子集键名")
    @Size(max = 64, message = "前缀子集键名长度不能超过64")
    private String prefixChildrenKey;
    /**
     * 前缀开关
     */
    @ApiModelProperty(value = "前缀开关")
    private Integer isPrefix;
    /**
     * 后缀名称
     */
    @ApiModelProperty(value = "后缀名称")
    @Size(max = 256, message = "后缀名称长度不能超过256")
    private String suffixName;
    /**
     * 后缀关键字
     */
    @ApiModelProperty(value = "后缀关键字")
    @Size(max = 256, message = "后缀关键字长度不能超过256")
    private String suffixKeyword;
    /**
     * 后缀属性
     */
    @ApiModelProperty(value = "后缀属性")
    @Size(max = 128, message = "后缀属性长度不能超过128")
    private String suffixAttribute;
    /**
     * 后缀属性值
     */
    @ApiModelProperty(value = "后缀属性值")
    @Size(max = 256, message = "后缀属性值长度不能超过256")
    private String suffixAttributeValue;
    /**
     * 后缀标签键名
     */
    @ApiModelProperty(value = "后缀标签键名")
    @Size(max = 128, message = "后缀标签键名长度不能超过128")
    private String suffixLabelKey;
    /**
     * 后缀值键名
     */
    @ApiModelProperty(value = "后缀值键名")
    @Size(max = 128, message = "后缀值键名长度不能超过128")
    private String suffixLabelValueKey;
    /**
     * 后缀子集键名
     */
    @ApiModelProperty(value = "后缀子集键名")
    @Size(max = 64, message = "后缀子集键名长度不能超过64")
    private String suffixChildrenKey;
    /**
     * 后缀开关
     */
    @ApiModelProperty(value = "后缀开关")
    private Integer isSuffix;

}
